| Visual Basic (Declaration) | |
|---|---|
Public Overloads Overrides Function GetByteCount( _ ByVal chars() As Char, _ ByVal index As Integer, _ ByVal count As Integer _ ) As Integer | |
| Visual Basic (Usage) | Copy Code |
|---|---|
Dim instance As ImapUTF7Encoding Dim chars() As Char Dim index As Integer Dim count As Integer Dim value As Integer value = instance.GetByteCount(chars, index, count) | |
Parameters
- chars
- The Unicode character array to encode.
- index
- The index of the first character in chars to encode.
- count
- The number of characters to encode.
Return Value
The number of bytes required to encode a range of characters in chars.| Exception | Description |
|---|---|
| System.ArgumentException | Return value is greater than MaxValue. |
| System.ArgumentNullException | chars is a null reference. |
| System.ArgumentOutOfRangeException | index or count is less than zero.-or-index plus count is greater than the length of chars. |
The following example demonstrates encoding/decoding data using the ImapUTF7Encoding class.
| Visual Basic | Copy Code |
|---|---|
Private Sub ImapUTF7Test() ' Create Unicode character array ' ChrW(35) = # ' ChrW(37) = % ' ChrW(928) = Pi ' ChrW(931) = Sigma Dim chars() As Char = {ChrW(35), ChrW(37), ChrW(928), ChrW(931)} ' Initialize ImapUTF7 encoder Dim ImapUTF7 As New ImapUTF7Encoding() ' Determine how big target byte array needs to be Dim Count As Integer = ImapUTF7.GetByteCount(chars, 0, chars.Length) ' You could also use the following to get the maximum size ' Dim Count As Integer = ImapUTF7.GetMaxByteCount(chars.Length) Debug.WriteLine(Count & " bytes needed to encode characters.") ' Initialize target byte array Dim Bytes(Count - 1) As Byte ' Encode data Count = ImapUTF7.GetBytes(chars, 0, chars.Length, bytes, 0) Debug.WriteLine(Count & " bytes encoded.") ' Show encoded bytes Dim B As Byte For Each B In Bytes Debug.WriteLine(B) Next ' Now to decode...first determine how big target char array needs to be Count = ImapUTF7.GetCharCount(Bytes, 0, Bytes.Length) ' You could also use the following to get the maximum size ' Count = ImapUTF7.GetMaxCharCount(Bytes.Length) Debug.WriteLine(Count & " characters needed to decode bytes.") ' Initialize target char array ReDim chars(Count - 1) ' Decode data Count = ImapUTF7.GetChars(Bytes, 0, Bytes.Length, chars, 0) Debug.WriteLine(Count & " bytes decoded.") ' Show decoded characters Dim C As Char For Each C In chars Debug.WriteLine(C) Next End Sub | |
| C# | Copy Code |
|---|---|
private void ImapUTF7Test() { // Create Unicode character array char[] chars = { '\u0023', // # '\u0025', // % '\u03a0', // Pi '\u03a3' // Sigma }; // Initialize ImapUTF7 encoder ImapUTF7Encoding ImapUTF7 = new ImapUTF7Encoding(); // Determine how big target byte array needs to be int count = ImapUTF7.GetByteCount(chars, 0, chars.Length); // You could also use the following to get the maximum size // int count = ImapUTF7.GetMaxByteCount(chars.Length); Debug.WriteLine(count + " bytes needed to encode characters."); // Initialize target byte array byte[] bytes = new byte[count]; // Encode data count = ImapUTF7.GetBytes(chars, 0, chars.Length, bytes, 0); Debug.WriteLine(count + " bytes encoded."); // Show encoded bytes foreach(byte b in bytes) Debug.WriteLine(b); // Now to decode...first determine how big target char array needs to be count = ImapUTF7.GetCharCount(bytes, 0, bytes.Length); // You could also use the following to get the maximum size // count = ImapUTF7.GetMaxCharCount(bytes.Length); Debug.WriteLine(count + " characters needed to decode bytes."); // Initialize target char array chars = new char[count]; // Decode data count = ImapUTF7.GetChars(bytes, 0, bytes.Length, chars, 0); Debug.WriteLine(count + " bytes decoded."); // Show decoded characters foreach(char c in chars) Debug.WriteLine(c); } | |
Use ImapUTF7Encoding.GetByteCount to calculate exactly, or ImapUTF7Encoding.GetMaxByteCount to calculate at most, the array size required by the ImapUTF7Encoding.GetBytes method to store encoded characters.
Target Platforms: Microsoft .NET Framework 2.0